<template>
  <div>
    <p>请选择你要购买的书籍</p>
    <ul>
      <li v-for ='(obj,index) in arr' :key="index">{{obj.name}}<button @click="btn(index)">买书</button></li>
    </ul>
    <table border="1" width="500" cellspacing="0" >
      <tr>
        <th>序号</th>
        <th>书名</th>
        <th>单价</th>
        <th>数量</th>
        <th>合计</th>
      </tr>
      <tr v-for="(obj,index) in arr " :key="index">
        <th>{{index + 1}}</th>
        <th>{{obj.name}}</th>
        <th>{{obj.price}}</th>
        <th>{{obj.count}}</th>
        <th>{{obj.price * obj.count}}</th>
      </tr>
    </table>
    <p>总价格为:{{getSum}} </p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      arr: [
        {
          name: "水浒传",
          price: 107,
          count: 0,
        },
        {
          name: "西游记",
          price: 192,
          count: 0,
        },
        {
          name: "三国演义",
          price: 219,
          count: 0,
        },
        {
          name: "红楼梦",
          price: 178,
          count: 0,
        },
      ],
    };
  },
  methods:{
    btn(index){
      this.arr[index].count++
    }
  },
     // 计算属性语法在computed中写
      // computed: {
      //     "计算属性名" () {
      //         return "值"
      //     }
      // }
  computed:{
    getSum(){
    //  利用计算属性,当依赖项arr里面的值发生改变,从新计算求和
      return  this.arr.reduce((sum,obj)=> sum += obj.price * obj.count,0 )
    }
  }
};
</script>